package com.czg.jsonschema2lombokpojo;

/**
 * 要为生成的java类型设置的包含级别（在Jackson序列化器的情况下控制包含级别）。每个关卡都有自己的映射注解集。
 *
 * @see <a href="http://fasterxml.github.io/jackson-annotations/javadoc/2.7/com/fasterxml/jackson/annotation/JsonInclude.Include.html" >JsonInclude.Include</a>
 */
public enum InclusionLevel {

    /**
     * 值，该值指示始终包含该属性，与属性的值无关。
     */
    ALWAYS,

    /**
     * 表示包含属性的值，除非它们的值为：
     * <ul>
     * <li>null
     * <li>引用类型的“absent”值（如Java 8 ' Optional '，或{link Java .utl.concurrent.atom . atomicreference}）；也就是说，它不会服从非空值。
     * </ul>
     */
    NON_ABSENT,

    /**
     * 此设置的含义取决于上下文：是否为POJO类型（类）指定注解
     */
    NON_DEFAULT,

    /**
     * 值，该值指示不包括仅具有空值的属性或被认为为空的属性。
     */
    NON_EMPTY,

    /**
     * 值，该值指示只包含非空值的属性。
     */
    NON_NULL,

    /**
     * 伪值，用于指示高级默认值是有意义的，以避免覆盖包含值。
     */
    USE_DEFAULTS,
}
